/**
 * 
 */
package ar.com.jsejtman.cajugastos2.core.entity;

/**
 * Frecuencias de los gastos.
 * 
 * @author jsejtman
 * 
 */
public enum Frecuencia {

	/**
	 * Gasto eventual.
	 */
	EVENTUAL(0, "Eventual"),
	/**
	 * Gasto Diario.
	 */
	DIARIO(1, "Diario"),
	/**
	 * Gasto Semanal.
	 */
	SEMANAL(2, "Semanal"),
	/**
	 * Gasto Mensual.
	 */
	MENSUAL(3, "Mensual"),
	/**
	 * Gasto Bimestral.
	 */
	BIMESTRAL(4, "Bimestral"),
	/**
	 * Gasto Trimestral.
	 */
	TRIMESTRAL(5, "Trimestral"),
	/**
	 * Gasto Semestral.
	 */
	SEMESTRAL(6, "Semestral"),
	/**
	 * Gasto Anual.
	 */
	ANUAL(7, "Anual");

	/**
	 * El identificador.
	 */
	private Integer id;

	/**
	 * Descripcion.
	 */
	private String descripcion;

	/**
	 * Constructor.
	 * 
	 * @param id El id de la frecuencia.
	 * @param descripcion La descripción de la frecuencia.
	 */
	private Frecuencia(final Integer id, final String descripcion) {

		this.id = id;
		this.descripcion = descripcion;
	}

	/**
	 * Devuelve el valor de id.
	 * 
	 * @return El valor de id.
	 */
	public final Integer getId() {

		return this.id;
	}

	/**
	 * Devuelve el valor de descripcion.
	 * 
	 * @return El valor de descripcion.
	 */
	public final String getDescripcion() {

		return this.descripcion;
	}

	/**
	 * Obtiene el elemento correspondiente al identificador indicado.
	 * 
	 * @param id Identificador cuyo elemento obtener.
	 * @return Elemento obtenido, o null si ninguno coincide con dicho identificador.
	 */
	public static Frecuencia fromId(final Integer id) {

		for (Frecuencia tipoItem : Frecuencia.values()) {
			if (tipoItem.getId().equals(id)) {
				return (tipoItem);
			}
		}

		return (null);
	}

}
